import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;


public class MedidorIndicadores {

	
	
	private ArrayList<IndicadorTransaccion> indicadores;
	
	private int cantTransaccionesFallidas;
	private int cantTransaccionesExitosas;
	private int cantTotalTransacciones;
	
	public MedidorIndicadores() {

		cantTransaccionesFallidas = 0;
		indicadores = new ArrayList<IndicadorTransaccion>();
		
	}
	
	public void agregarIndicador(IndicadorTransaccion i ){
		
		indicadores.add(i);
	}

	public void generarReporte(){


		File f = new File("./data/reporte/archivoReporte.csv");

		if(!f.exists()){
			try {
				f.createNewFile();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

		try {


			PrintWriter pw  = new PrintWriter(f);


			pw.println("Tiempo Respuesta;Numero fallas");

			for (int i = 0; i < indicadores.size(); i++) {


				IndicadorTransaccion indicador = indicadores.get(i);

				cantTotalTransacciones++;

				if (indicador.esExitosa()){
					
					
					pw.println(indicador.darTiempoRespuesta()+";" + indicador.darNumFallas());
					if(indicador.darTiempoRespuesta() == -1)
						cantTransaccionesFallidas ++;
					else
					cantTransaccionesExitosas ++ ;
				}
				else{
					cantTransaccionesFallidas ++;
					pw.println("FALLA;" + indicador.darNumFallas());
				}
			}

			pw.println("El numero total de transacciones fallidas es:" + cantTransaccionesFallidas);
			pw.println("El numero total de transacciones exitosas es:" + cantTransaccionesExitosas);
			pw.println("El numero total de transacciones es:" + cantTotalTransacciones);

			pw.close();
			System.out.println("Se genero el archivo");
			System.out.println("cantidad de indicadores:" + indicadores.size());

		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}


	}

}
